<?php

class Back_UtilisateursController extends Osml_Controller_Admin_Action
{

    public function indexAction ()
    {
        $model = new Back_Model_Utilisateurs();
        $select = new Zend_Db_Table_Select($model->_getMapper()->_getTable());
        
        $form = new Back_Form_Utilisateurs("Formulaire");
        
        $this->view->tableIdField = 'id_utilisateurs';
        $this->view->tableSelect = $select->order('nom');
        $this->view->tableHeader = array(
                'nom' => array(
                        'name' => 'nom',
                        'link' => array(
                                'action' => 'editer'
                        )
                ),
                'prenom' => array(
                        'name' => __("Prénom"),
                        'link' => array(
                                'action' => 'editer'
                        )
                ),
                'mail' => array(
                        'name' => __("Mail"),
                        'link' => array(
                                'action' => 'editer'
                        )
                )
        );
        
        /*
         * Thierry BROUARD (BIIS) callback = array( $objet, $method ) link =
         * array( action [,controller[,module]] ) ou array( 'callback' => array(
         * $objet, $method ) )
         */
        $this->view->tableOptions = array(
                'callback' => array(
                        $this,
                        '_transformRowsCallback'
                ), // Transformation callback
                'link' => array(
                        'action' => 'voir'
                ),
                'pageNumber' => (int) $this->_getParam('page', 1),
                'pageItemPerPage' => (int) $this->_getParam('par', 20),
                'form' => $form
        );
    }

    public function editerAction ()
    {
        $requete = $this->getRequest();
        $id = $requete->getParam("id", 0);
        
        $saison = new Back_Model_Saisons();
        $listeSaisons = $saison->listerPourSelect(false);
        $options['saisons'] = $listeSaisons;
        $form2 = new Back_Form_SaisonsUtilisateurs('FormulaireLabelSimple', $options);
        
        $saisonsParUtilisateur = Back_Model_UtilisateurSaison::recuperationSaisonParUtilisateur($id);
        $form2->getElement('saisons')->setValue($saisonsParUtilisateur);
        
        $form = new Back_Form_Utilisateurs();
        if ($id > 0) {
            $form->removeElement("motDePasse");
        }
        $utilisateur = new Back_Model_Utilisateurs($id);
        $saisonParDefaut = null;
        
        if ($requete->isPost()) {
            if ($form->isValid($requete->getPost())) {
                $datas = $form->getValues();
                $enfant = $datas['enfant'];
                $contact1 = $enfant['contact1'];
                $contact2 = $enfant['contact2'];
                unset($datas['enfant']);
                $datas = array_merge($datas, $contact1, $contact2);
                $date = date(Jnd_Global_Constantes::FORMAT_DATE_BASE);
                if (intval($id) > 0) {
                    $utilisateur->charger($id);
                    $pwd = $utilisateur->getMotDePasse();
                    $utilisateur->setOptions($datas);
                    $utilisateur->setMotDePasse($pwd);
                } else {
                    $utilisateur->setOptions($datas);
                    $saisonParDefaut = Back_Model_Saisons::recuperationSaisonDefaut();
                    $liaison = new Back_Model_UtilisateurSaison();
                    $liaison->setIdSaison($saisonParDefaut->getId());
                }
                $resultat = $utilisateur->sauver();
                $id = $utilisateur->getId();
                if ( $saisonParDefaut instanceof Back_Model_Saisons) {
                    $liaison->setIdUtilisateur($id);
                    $liaison->sauver();
                    
                }
                
                return $this->_helper->redirector('index');
            }
        } elseif ($requete->isGet()) {
            if ($id > 0) {
                $utilisateur->charger($id);
                $form->populate($utilisateur->toArray());
            }
        }
        
        $this->view->form = $form;
        $this->view->form2 = $form2;
        $this->view->model = $utilisateur;
        
        $this->view->saisons = Back_Model_Saisons::saisons();
    }

    
}

